import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'
import menus from './modules/menus'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    app,
    settings,
    user,
    menus
  },
  getters
})

export default store

// 通过require.context实现高级写法
// import Vue from 'vue'
// import Vuex from 'vuex'
// import getters from './getters'

// Vue.use(Vuex)

// // require.context: 可以指定目录下所有的匹配文件
// // 语法 - require.context('指定的目录',设置是否递归获取,正则规则匹配指定的文件)

// const req = require.context('./modules', false, /\.js$/)

// const mName = req.keys().map(item=>{ return item.split('./')[1]}).map(item=>{return item.split('.js')[0]}) // 获取每个子模块的属性名 数组split方法拆除掉前缀路径与后缀文件格式
// const mModule = req.keys().map(req) // 相当于导入每个子组件 需要加上[下标].default
// console.log(mModule)

// const obj = {}

// mName.forEach((key,index)=>{
//   console.log('key',key);
//   console.log('index',index);
//   obj[key] = mModule[index].default

// });
// console.log('obj',obj)

// const store = new Vuex.Store({
//   modules: obj,
//   getters
// })

// export default store
